<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core">

<ui:composition  template="template.xhtml" >
	
	<ui:define name="principal">
		
		<h:form id="frmPagamento">
		
			<p:outputPanel styleClass="pnFormularioPagamento">
			
	   			<p:growl id="message" 
				         showDetail="true" 
				         globalOnly="true"
				         sticky="false"
				         life="1200" />	
				         
				<h:panelGrid columns="1">
					<p:outputLabel value="Selecionar Cliente" />
					<p:column>
						<p:inputText id="cliente"
						             size="50"
						             value="#{pagamentoMB.cliente.nome}"
						             autocomplete="false" >
						</p:inputText>	
						<p:spacer width="5" />						
						<p:commandLink update=":frmPesquisaCliente"
									   oncomplete="PF('dlgPesquisaCliente').show()">
							<h:graphicImage library="imagens" 
											name="localizar.png" />
						</p:commandLink>
						<p:spacer width="5" />
						<p:commandLink update="frmPagamento:cliente">
							<h:graphicImage library="imagens" 
											name="excluir.png" />
							<f:setPropertyActionListener target="#{pagamentoMB.cliente.nome}" value="" />
						</p:commandLink>									
					</p:column>			         
				</h:panelGrid>
				
				<p:spacer height="15" />	
				
				<p:dataTable value="#{pagamentoMB.listaAgendaCliente}"
				             var="reg"
				             sortBy="#{reg.cliente.idCliente}" 
				             rowKey="#{reg.idAgenda}"
						     selection="#{pagamentoMB.pagamentoSelecionados}" 
						     selectionMode="multiple" 
						     emptyMessage="Nenhum Cliente Selecionado">
			        <f:facet name="header">
			        	<p:outputLabel value="Serviços" />
			        </f:facet>
			        <p:ajax event="rowSelect"
                            update=":frmPagamento:valorAPagar" />	
			        <p:ajax event="rowUnselect"
                            update=":frmPagamento:valorAPagar" />	                            					     
			 		<p:column headerText="Data">
			 			<p:outputLabel value="#{reg.dataInicio}">
			 				<f:convertDateTime pattern="dd/MM/yyyy"  />
			 			</p:outputLabel>
			 		</p:column>
			 		<p:column headerText="Cliente">
			 			<p:outputLabel value="#{reg.cliente.nome}" />
			 		</p:column>
			 		<p:column headerText="Serviço">
			 			<p:outputLabel value="#{reg.servico.descServico}" />
			 		</p:column>
			 		<p:column headerText="Valor"
			 		          styleClass="colunaValor" >
			 			<p:outputLabel value="#{reg.valor}"  >
			 			   <f:convertNumber type="currency" currencySymbol="R$" />
			 			</p:outputLabel>
			 		</p:column>		
				    <p:summaryRow>
				        <p:column styleClass="colunaValor"
				                  colspan="3">
				        	<p:outputLabel value="Total"  />
				        </p:column>
			            <p:column styleClass="colunaValor">
			                <h:outputText value="#{pagamentoMB.valorTotalServico}" >
			                    <f:convertNumber type="currency" currencySymbol="R$" />
			                </h:outputText>
			            </p:column>
		        	</p:summaryRow>
				</p:dataTable>
				
				<p:spacer height="20px" />
				
				<p:dataTable value="#{pagamentoMB.listaVendaProdutoCliente}"
				             var="reg"
				             sortBy="#{reg.cliente.idCliente}" 
				             rowKey="#{reg.idVendaProduto}"
						     selection="#{pagamentoMB.vendasSelecionadas}" 
						     selectionMode="multiple" 
						     emptyMessage="Nenhuma Venda Selecionada">
			        <f:facet name="header">
			        	<p:outputLabel value="Produtos" />
			        </f:facet>
			        <p:ajax event="rowSelect"
                            update=":frmPagamento:valorAPagar" />	
			        <p:ajax event="rowUnselect"
                            update=":frmPagamento:valorAPagar" />	                            					     
			 		<p:column headerText="Data Venda">
			 			<p:outputLabel value="#{reg.dataVenda}">
			 				<f:convertDateTime pattern="dd/MM/yyyy"  />
			 			</p:outputLabel>
			 		</p:column>
			 		<p:column headerText="Cliente">
			 			<p:outputLabel value="#{reg.cliente.nome}" />
			 		</p:column>
			 		<p:column headerText="Produto">
			 			<p:outputLabel value="#{reg.produto.descProduto}" />
			 		</p:column>
			 		<p:column headerText="Valor" 
			 		          styleClass="colunaValor">
			 			<p:outputLabel value="#{reg.quantidade * reg.valor}" >
			 				<f:convertNumber type="currency"  />
			 			</p:outputLabel>
			 		</p:column>		
				    <p:summaryRow>
				        <p:column styleClass="colunaValor"
				                  colspan="3">
				        	<p:outputLabel value="Total" />
				        </p:column>
			            <p:column styleClass="colunaValor">
			                <h:outputText value="#{pagamentoMB.valorTotalVenda}"
			                              >
			                    <f:convertNumber type="currency" currencySymbol="R$" />
			                </h:outputText>
			            </p:column>
		        	</p:summaryRow>
				</p:dataTable>
				
				<p:spacer height="10px" />
				
				<h:panelGrid columns="3" >				
						<p:commandButton action="#{pagamentoMB.carregaValorTotal()}"
							                 value="Selecionar Tudo"
							                 update=":frmPagamento" />
		               	<p:spacer width="20" height="0" />
		               	<p:commandButton value="Limpar"
		               	                 action="#{pagamentoMB.inicializaTotal()}"
		               	                 update=":frmPagamento"/>      
		        </h:panelGrid>					
				
				<p:spacer height="10px" />
				
				<h:panelGrid columns="2" 
				             columnClasses="telaValores1, telaValores2">
					<p:outputLabel value="Forma Pagamento" />
					<p:column>
						<p:selectOneMenu id="formaPagto"
						                 value="#{pagamentoMB.formaPagamento.idFormaPagamento}"
						                 style="width: 220px;"
						                 required="true"
						                 requiredMessage="#{msg['mensagem.obrigatoria']}" >
							<f:selectItem itemValue="0" itemLabel="Selecione a Forma de Pagamento"/>
							<f:selectItems value="#{pagamentoMB.listaFormaPagamento}" 
							               var="formaPagto" 
							               itemValue="#{formaPagto.idFormaPagamento}" 
							               itemLabel="#{formaPagto.descFormaPagamento}" />
						</p:selectOneMenu>	
						<p:message for="formaPagto" />
					</p:column>
					
				</h:panelGrid>			
				
				<p:spacer height="10px" />	
				
				<h:panelGrid columns="2" 
				             columnClasses="telaValores1, telaValores2">
					<p:outputLabel value="Valor Recebido" />
					<p:column>
						<p:inputText id="valorRecebido"
						             value="#{pagamentoMB.valorRecebido}"
						             style="text-align:right" 
						             size="20">
							<p:ajax event="blur" 
							        listener="#{pagamentoMB.calculaTroco()}" 
							        update=":frmPagamento:troco, :frmPagamento:valorRecebido" />
							<f:convertNumber pattern="#,##0.00"/>
						</p:inputText>
					</p:column>
					
				</h:panelGrid>
				
				<p:spacer height="20px" />
				
				<h:panelGrid columns="2"
				             columnClasses="telaValores1, telaValores2">
					<p:outputLabel value="Valor a Pagar" />
					<p:inputText id="valorAPagar"
								 value="#{pagamentoMB.getValorTotalSelecionado()}"
					             disabled="true"
					             style="text-align:right">				          
	                	<f:convertNumber pattern="#,##0.00"/>
	               	</p:inputText>	
	            </h:panelGrid>
	            
	            <p:spacer height="20px" />
	            
	            <h:panelGrid columns="2"
	                         columnClasses="telaValores1, telaValores2">
					<p:outputLabel value="Troco" />
					<p:inputText id="troco" 
					             value="#{pagamentoMB.troco}" 
					             style="text-align:right"
					             disabled="true">
						<f:convertNumber pattern="#,##0.00"/>
					</p:inputText>               	
				</h:panelGrid>
				
			    <p:spacer height="10px" />			
				
				<h:panelGrid columns="1" >
					<p:column>				
		               	<p:commandButton value="Confirma Pagamento"
		               	                 action="#{pagamentoMB.salvaPagamento()}" />
		               	<p:spacer width="20" height="0" />
		               	<p:commandButton value="Fechar"
		               	                 action="agenda" />
					</p:column>
				</h:panelGrid>			
			
			</p:outputPanel>
			
		</h:form>
		
		<h:form id="frmPesquisaCliente">
			<p:dialog id="dlgPesquisaCliente" 
			          widgetVar="dlgPesquisaCliente" >
			    <p:dataTable value="#{pagamentoMB.listaClienteSelecionados}"
			                 var="reg" 
			                 selectionMode="single"
			                 selection="#{pagamentoMB.cliente}"
			                 rowKey="#{reg.nome}"
			                 style="width: 600px;">
			        <p:ajax event="rowSelect"
			                listener="#{pagamentoMB.inicializaTotal()}"
			        		oncomplete="PF('dlgPesquisaCliente').hide();" 
                            update=":frmPagamento" />
			    	<p:column headerText="Cliente">
			    		<p:outputLabel value="#{reg.nome}" />
			    	</p:column>
			    </p:dataTable>
			</p:dialog>
		</h:form>	
		
		<p:dialog widgetVar="dlgConfirmaPagamento"  >
			<p:outputLabel value="Confirma o pagamento?"  />
			<br />
			<br />
			<p:commandButton value="Sim"
			                 action="#{pagamentoMB.confirmaPagamento()}"
			                 update=":frmPagamento"
			                 oncomplete="PF('dlgConfirmaPagamento').hide()" />
			<p:spacer width="5px" />
			<p:commandButton value="Não"
			                 oncomplete="PF('dlgConfirmaPagamento').hide()" />
		</p:dialog>		
		
	</ui:define>
	
</ui:composition>
</html>